package com.ymh.spring.learn.aop.aspect;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;

/**
 * 
 * 名称：Audience<br/>
 * 描述：升级版本<br/>
 * 创建时间：2018年3月21日 下午6:31:40 <br/>
 * 
 * @author aivin
 * @version 1.0.0
 */
@Aspect
public class Audience2 {

	@Pointcut("execution(** com.ymh.spring.learn.aop.service.Performance.perform(..))")
	public void performance() {
	}

	/*
	 * 环绕通知方法
	 */
	@Around("performance() *")
	public void watchPerformance(ProceedingJoinPoint jp) {
		try {
			System.out.println("Silence cell phones");
			System.out.println("Taking seats!");
			jp.proceed();
			System.out.println("ClAP CLAP CLAP!!!");
		} catch (Throwable e) {
			System.out.println("Demanding a refund");
		}
	}

}
